package org.stone.project.tx.config;

import io.netty.channel.ChannelHandlerContext;
import org.stone.project.tx.pojo.dto.UserCtxDto;
import org.stone.project.tx.pojo.dto.UuidUserCtxDto;
import org.stone.project.tx.pojo.dto.UuidUserDto;

import java.util.Map;

public interface CtxHolderInterface {
    Map<String, UuidUserCtxDto> findByUserIdAll(String userId);

    ChannelHandlerContext findByUserId(String userId,String linkId);

    UuidUserDto findByCtx(ChannelHandlerContext ctx);

    void addUserCtx(String userId,String linkId, ChannelHandlerContext ctx);

    void removeUserCtx(String userId,String linkId );

    UserCtxDto linkRemoveExist(ChannelHandlerContext ctx);

    UserCtxDto unLinkRemoveExist(ChannelHandlerContext ctx);

    Integer getConnectionNum();

    Integer getConnectionUserNum();

    Integer getConnectionByUserNum(String userId);

    Map<ChannelHandlerContext, UuidUserDto> getAllCtx();
}
